﻿Public Class FrmGestFrss

#Region "champs"
    Dim position As Integer = 0
#End Region

#Region "gestionnaire évènements"
    Private Sub FrmGestFrss_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MySQLConnect.MaRequete = "SELECT * FROM Fournisseur"
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "TousLesFournisseurs")
        DGFrss.DataSource = MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs")

        Rafraichir()
        txtIdFrss.Enabled = False
    End Sub

    Private Sub btnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAjouter.Click
        'Gestion de l'ajout de fournisseurs
        If btnAjouter.Text = "Ajouter" Then
            txtIdFrss.Text = MySQLConnect.GenererClePrimaire("idFournisseur", "Fournisseur") '(MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Rows.Count) + 1 'Incrémentation de 1 
            txtNomFrss.Text = ""
            txtCpFrss.Text = ""
            txtVilleFrss.Text = ""

            btnAjouter.Text = "Valider !"
        Else
            If txtNomFrss.Text <> "" And txtVilleFrss.Text <> "" And txtCpFrss.Text <> "" Then
                Dim num As Integer
                Dim nom As String
                Dim cp As String
                Dim ville As String

                'Affectation variables
                num = MySQLConnect.GenererClePrimaire("idFournisseur", "Fournisseur")
                nom = txtNomFrss.Text
                cp = CInt(txtCpFrss.Text)
                ville = txtVilleFrss.Text

                'Requête
                MySQLConnect.MaRequete = "INSERT INTO Fournisseur VALUES (" & num & ", '" & nom & "','" & ville & "', " & cp & "  )"
                MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
                MySQLConnect.MaCommandeSpecialeRequete.ExecuteNonQuery()

                MessageBox.Show("Le fournisseur a été ajouté !", "Ajout d'un fournisseur", MessageBoxButtons.OK)

                position = 0
                RechargerLesDonnees()
                Rafraichir()

                btnAjouter.Text = "Ajouter"
            Else
                MessageBox.Show("Veuillez renseignez tous les champs munis d'un '*'", "Erreur !", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End If
        End If
    End Sub

    Private Sub btnSuppr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuppr.Click
        Dim n As Integer = DGFrss.CurrentRow.Cells(0).Value()

        Dim result = MessageBox.Show("Etes-vous sur de vouloir supprimer '" & DGFrss.CurrentRow.Cells(1).Value() & "' ?", "Suppression de Fournisseurs", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.Yes Then
            MySQLConnect.MaRequete = "DELETE FROM Fournisseur WHERE idFournisseur = " & n & ""
            MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
            MySQLConnect.MaCommandeSpecialeRequete.ExecuteNonQuery()

            MessageBox.Show("Le fournisseur : '" & DGFrss.CurrentRow.Cells(1).Value() & "' a ete supprimé !", "Test", MessageBoxButtons.OK, MessageBoxIcon.Information)
            RechargerLesDonnees()
            Rafraichir()
        End If
    End Sub

    Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click
        'Affectation des valeurs
        Dim id As Integer = CInt(txtIdFrss.Text)
        Dim n As String = txtNomFrss.Text
        Dim v As String = txtVilleFrss.Text
        Dim cp As Integer = CInt(txtCpFrss.Text)

        Dim result = MessageBox.Show("Etes-vous sur de vouloir modifier le fournisseur : '" & DGFrss.CurrentRow.Cells(1).Value() & "' ?", "Modification de Fournisseurs", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If result = DialogResult.Yes Then
            MySQLConnect.MaRequete = "UPDATE Fournisseur SET NomFournisseur = '" & n & "', VilleFournisseur = '" & v & "', CPFournisseur = " & cp & " WHERE idFournisseur = " & id & ""
            MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
            MySQLConnect.MaCommandeSpecialeRequete.ExecuteNonQuery()

            MessageBox.Show("Le fournisseur '" & DGFrss.CurrentRow.Cells(1).Value() & "' a bien été modifié !", "Modification de Fournisseurs", MessageBoxButtons.OKCancel, MessageBoxIcon.Information)
            RechargerLesDonnees()
            Rafraichir()
        End If

    End Sub

    Private Sub DGFrss_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DGFrss.Click
        If DGFrss.CurrentCell.Value Is DBNull.Value Then
            gbClients.Visible = False
        Else
            gbClients.Visible = True
            txtIdFrss.Text = DGFrss.CurrentRow.Cells(0).Value()
            txtNomFrss.Text = DGFrss.CurrentRow.Cells(1).Value()
            txtVilleFrss.Text = DGFrss.CurrentRow.Cells(2).Value()
            txtCpFrss.Text = DGFrss.CurrentRow.Cells(3).Value()
        End If
    End Sub

    Private Sub FrmGestFrss_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Clear()
        Me.Hide()
    End Sub
#End Region

#Region "méthodes et procédures"
    Public Sub Rafraichir()
        txtIdFrss.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Rows(position).Item(0)
        txtNomFrss.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Rows(position).Item(1)
        txtCpFrss.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Rows(position).Item(2)
        txtVilleFrss.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Rows(position).Item(3)
    End Sub

    Public Sub RechargerLesDonnees()
        MySQLConnect.MonJeuDeDonnees.Tables("TousLesFournisseurs").Clear()
        MySQLConnect.MaRequete = "SELECT * FROM Fournisseur"
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "TousLesFournisseurs")
    End Sub
#End Region

End Class
